.node {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  background-color: #fff;
  border: 1px solid #c2c8d5;
  border-left: 4px solid #1890ff;
  border-radius: 4px;
  box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.06);
  img {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    margin-left: 8px;
  }
  .label {
    display: inline-block;
    flex-shrink: 0;
    width: 104px;
    margin-left: 8px;
    color: #666;
    font-size: 12px;
  }
  .status {
    flex-shrink: 0;
  }
  &.success {
    border-left: 4px solid #52c41a;
  }
  &.failed {
    border-left: 4px solid #ff4d4f;
  }
  &.running .status img {
    animation: spin 1s linear infinite;
  }
}

.x6-node-selected {
  .node {
    border-color: #1890ff;
    border-radius: 2px;
    box-shadow: 0 0 0 4px #d4e8fe;
  }
  .node.success {
    border-color: #52c41a;
    border-radius: 2px;
    box-shadow: 0 0 0 4px #ccecc0;
  }
  .node.failed {
    border-color: #ff4d4f;
    border-radius: 2px;
    box-shadow: 0 0 0 4px #fedcdc;
  }
}

.x6-edge:hover {
  path:nth-child(2) {
    stroke: #1890ff;
    stroke-width: 1px;
  }
}

.x6-edge-selected {
  path:nth-child(2) {
    stroke: #1890ff;
    stroke-width: 1.5px !important;
  }
}

@keyframes running-line {
  to {
    stroke-dashoffset: -1000;
  }
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
